iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
Claude AI

買了 Claude Code,然後呢?系列 第 30 篇

Day 30|工具買完後,我們終於能怎麼回答總經理?

  • 分享至 

  • xImage
  •  

Day 30 封面:白板寫著 output ≠ outcome,分三欄結帳:機器做了什麼「查得到」、工作結果有沒有變「重心移了」、人花了多少時間「還答不出來」
Day 1,總經理問:開發有沒有變快?維運的人力負擔有沒有降低?

我拿得出使用報表,卻回答不了。三十天下來,我最大的體會是:output 不等於 outcome。 Claude 寫出的程式、提出的修改、跑完的排程,都是 output;總經理問的是 outcome:工作有沒有變好、人有沒有變輕鬆。昨天的迴圈也一樣,它準時提出下一步,我卻沒有比較輕鬆。

所以今天分開結帳。Day 1 的五層問題,收成三題:① 機器做了什麼(output)、② 工作結果有沒有變(outcome)、③ 人花了多少時間(代價)。順序是先看機器、再看結果、最後算代價。

先說結論:人變少了,交付沒有掉,重心還移到了新產品,維運新單也結得更快;但人省了多少時間,還答不出來。 這篇是整個系列的總結帳;只想看一段,先看 ② 的兩隊對照。

先看三十天的地圖

三十天方法地圖:Prompt、Skill、Harness、Loop 由下往上,各層插著代表日次,結果沿箭頭回到下一輪
下方共用資料區的 Wiki 和可觀測性,是每一層都能取用的資料:Wiki 給專案背景,可觀測性給實際運行的線索。

下面三題的證據,就落在這張地圖上:

題目 對應 Day 1 地圖上看哪一層 本篇的證據
① 機器做了什麼? L1 有沒有在用、L2 交出來能不能接受 Harness 留下的紀錄 OTel 遙測:權限被拒、重複開單
② 工作結果有沒有變? L5 開發與維運有沒有變好 Prompt 到 Harness 疊起來之後的交付 Day 26 教學案例;公司的交付與維運趨勢
③ 人花了多少時間? L3 人有沒有變輕鬆、L4 值不值得 Loop 那一層的裁決 改善提案的裁決積壓;回本門檻

① 機器做了什麼?(L1、L2)

我也回看了官方使用後台與 Day 30 收到的 OpenTelemetry 遙測。它們可以提供工具活動與成本線索,卻不能單靠這些事件回答工作結果。

拿 Day 28 兩組案例重跑:C1 是權限被拒的那組,A1 是兩輪排程重疊、重複開單的那組,r1、r2 是第幾輪。收到的事件節錄如下(欄位順序重排,身分欄位已遮):

C1 r1  tool_decision  tool_name=Bash  decision=reject  source=config
C1 r1  api_request    model=claude-sonnet-5-5  cost_usd=0.0179
A1 r1  tool_decision  tool_name=Bash  decision=accept  source=config
A1 r1  tool_result    tool_name=Bash  success=true  duration_ms=40813
A1 r2  tool_result    tool_name=Bash  success=true  duration_ms=40866

看第 1 行的 decision:C1 那次權限被拒,排程只看得到退出碼,而它是 0;遙測卻留下一筆 reject。再看第 4、5 行:A1 兩輪的開單指令都是 success=true,可是開出的 4 張單是重複的,遙測裡沒有任何一欄看得出來。

執行紀錄、外部工作結果、人工投入,要能對到同一件事。 退出碼看不到的拒絕,可以從工具事件補查;重複開單,要查外部系統;人花多少時間核對與清理,還得另外記。工具執行秒數不能直接當成人工節省。

② 工作結果有沒有變?(L5)

先看一個能重驗的教學案例,再看公司的真實工作。

教學案例:修得很快,原本的承諾還成立嗎?

Day 26,訂單服務的 CPU 不忙,取消請求卻卡住。給 Claude 的調查要求是這段:

服務在併發取消時變慢,CPU 卻不忙。先提出至少兩個原因,各寫出什麼結果會推翻它。……查不到就列缺件。不要修改程式。

Claude 查指標、堆疊與程式,找到同步等待占住執行緒的位置,再把等待改成 await。

同樣用 96 個併發工作者取消 384 張不同訂單,第一版修完,兩輪都拿到 384 筆 HTTP 200,p95 回應時間約半秒。

但 Claude 的修法說明自己寫了一句:「這個競態原本就存在,我沒有處理,因為它超出最小修法。」也就是同一張訂單同時取消,可能重複通知。我把這個風險做成測試,讓 16 個請求同時取消同一張新訂單,接收端真的收到 16 筆通知。

規格原本寫的是:真正取消一次,只能通知一次。於是把結果交回 Claude,補上同一把鎖內的重新讀取、判斷與更新,再跑一次。

兩版的差別在鎖的範圍:第一版的讀與寫各鎖各的,中間的判斷沒有鎖住;第二版把三步放進同一把鎖。看兩版的 lock 包住了幾行。

// 第一版:等待改成 await,變快了;但讀、判斷、寫分開,同單併發仍會重複通知
await CustomerHistory.FetchAsync();
lock (_g) current = _d[id];                   // 鎖內讀
result = Cancellation.Cancel(current);         // 鎖外判斷:兩個請求可能同時走到這裡
lock (_g) _d[id] = result.Order;              // 鎖內寫

// 第二版:讀取、判斷、更新放進同一把鎖
lock (_g)
{
    current = _d[id];
    result = Cancellation.Cancel(current);
    if (Cancellation.Transitioned(current, result)) _d[id] = result.Order;
}
同一組教學負載的核對項目 故障版本 第一版:改成非同步等待 第二版:補原子操作
不同訂單取得 HTTP 200 321/384 兩輪皆 384/384 兩輪皆 384/384
客戶端 p95 約 30 秒 0.56~0.58 秒 0.57~0.59 秒
同單 16 併發,接收端通知數 未測 兩輪皆 16 筆 兩輪皆 1 筆
是否接受 未通過 未通過 通過本次條件

第二版每輪 13 項檢查通過。三輪診斷與兩版修復的 CLI 回報費用合計約 US$0.78。

這就是箭頭回到第二幕(Day 6–16)的樣子:Day 6 約好的完成條件,在 Day 26 變成攔下第一版的測試。它也改變了我收成果的順序:先確認原本的承諾仍成立,再看變快的數字。

這是本機 .NET 教學服務的故障注入與修復,p95 的故障值也受 30 秒逾時上限影響。它沒有證明正式服務的容量、跨多台機器的一致性,或整段事故處理省了多少人時。

真實工作:開發有沒有變快?

能直接對到 Claude Code 的,是 ① 的遙測與上面的教學案例;以下是整個團隊導入 AI 工具的結果,拆不出 Claude 單獨的份量。《研發交付流程儀表板》整理的兩季資料,先給我一個提醒:開發活動與交付結果,可能往不同方向走。

項目 Q2 對 Q1(以工作天校正)
開發活動(Commit) 約 +27%
完成合併的 PR 約 −3%,可視為持平

開發活動多了快三成,完成合併的 PR 卻持平。這段期間還有同事陸續離開,完成的 PR 卻沒有跟著掉,比「留下的人數比例 × 導入前人均 PR」的推算多約兩成(人數為內部資料,無法外部複驗)。

但把 PR 拆開看,變的不是總量,是流向:新產品的交付佔比,從一成拉到四成五。 舊產品線有增有減,時間移到了新產品上。

單張開發單倒沒有變快:已結案開發單的中位數是 9.4 天與 9.2 天;上線環節有改善訊號,但轉折略早於導入。

所以我會把「開發有沒有變快」答成:總量持平,重心轉移;單張工作沒有變快,同樣的人做了不同的事。 這些變化不能全歸因於 AI;PR 大小、產品階段與人力配置也都沒有控制。

最反直覺的一組,來自兩個團隊的對照:AI 使用程度與審查方式幾乎一樣,流入的工作量卻不同,結果也相反。 先看「錯誤單流入」那一列。

兩隊對照(2026 年 1~8 月,以 4 月中為前後分界;樣本為同期完成的 PR 與工單,各數千筆) 變快的一隊 變慢的一隊
AI 參與的 PR 佔比 約 79% 約 84%
人工審查核准率(Claude 審查 bot 上線後) 下降約 36 個百分點 下降約 31 個百分點
任務週期中位數 縮短約 64% 拉長約 167%
錯誤單流入 減少約一半 增加約 2.5 倍
錯誤修復週期 拉長約 11% 拉長約 41%

兩隊都高度使用 AI,取代大部分人工審查的,也都是同一個以 Claude 跑的審查 bot;差在流入的工作量,變慢那隊同期新案件還多了約七成。兩隊的錯誤修復也都沒有變快。DORA 2025 把 AI 稱為放大器,流程與負荷撐得住的團隊更快,撐不住的更慢;這兩隊看起來就是這樣,但成因報告還沒證實。

真實工作:維運省下的是等待還是工時?

同一份流程儀表板裡,一類問題回報的新案件有這個變化:

一類問題回報的新案件 5 月 → 6 月
案件數 約 +35%
開單到結案的中位數 5.1 天 → 3.0 天

新案件結得更快,案件也變多了。但結案時間包含等待,不是工時;另一類維運單的結案時間反而拉長。

目前能說的是這批案件較快結案;維運人力是否減載,仍然沒有足夠證據。

③ 人花了多少時間?(L3、L4)

人的工作方式確實變了,例如有審查 bot 的團隊,人工核准變少;但少一次核准,不能換算成省下幾分鐘。直接問人也不準:METR 2025 的隨機對照實驗裡,資深開發者覺得自己快了兩成,實測卻慢了約兩成。所以這一題我不拿問卷當答案。

退回有接到下一輪,人就比較輕鬆了嗎?

昨天的迴圈證明,退回的理由能帶進下一輪,讓 Claude 換個做法。但「不同意」三個字沒有寫出風險判準,下一次仍要靠我補充,裁決的工作沒有消失。

放大到實際的工作看板更清楚:兩個月提出 30 張改善提案,我裁決了 13 張,最早一張等了 55 天。提案準時來,裁決卻沒有排進固定節奏。 昨天的「更忙」,量到的是待決工作在累積,不是工時。

這也是我下一季要補的量法:挑一件反覆發生、結果查得到的工作,開始前先寫下要改善什麼、跟什麼比、誰接受;人的準備、核對、返工時間分開記,沒記到就留空,不事後補估。如果你也要回答自己的總經理,可以從同一件事開始。

換成總經理聽得懂的話:這筆錢划不划算?(L4)

拿給總經理,他只會再問一句:「這筆錢划不划算?」

經營者問的 目前知道的 還缺的
花了多少 訂閱費固定;6 月提問數是 4 月的 3.7 倍,每次提問的成本降了約七成 導入、核對、返工的人工
何時回本 報告估算:每人每月省下不到一天就打平 人實際省了多少時間

「回本的門檻不高,但我們還沒量過有沒有跨過去。下一季,我們先把人的時間量出來,再回來跟您報告。」

寫到這裡我才發現,Day 1 的問題本身要改。「開發有沒有變快、人力有沒有降低」,假設的是 AI 用來省人;三十天的資料卻告訴我,它改變的是人的時間花在哪裡。下一次回報,我想換一個問題:同樣的人,時間有沒有移到更值錢的事情上?

回到一開始:買了 Claude Code,然後呢?

三十天前那場主管會議,我報完使用量,會議室安靜了一下。我回答的是「大家用了多少」,總經理問的是「工作變好了多少」。

如果下週再開一次會,我會帶三樣東西進去:一張機器查得到的紀錄、一張交付與維運的趨勢,還有一個空格,上面寫著「人省了多少時間:下一季量」。

那個空格,是我三十天前不敢承認的東西。現在我知道,它不是報告的缺陷,而是下一步該花錢的地方。要量的人工時間,我會和 Claude 留下的工具事件、退回理由與裁決紀錄對到同一件事:哪一次核對、哪一次返工,對應到哪一輪輸出。

會議室也許還是會安靜一下。但這一次,我知道自己在等什麼答案。這個系列寫到這裡結束,剩下的就是把那個空格填上。

產出可以交給 AI,成果只能由人負責。

附錄:三十天逐日索引

圖中標的是代表篇章;這份索引收齊 Day 1–30。可以從目前卡住的工作找回對應文章,四種方法也能跨階段使用。

第一幕|先定問題與量尺(Day 1–5):先決定改善什麼、怎麼分工、拿什麼比較。

  • Day 1:分清使用量與工作成效
  • Day 2:選對問題,安排人、流程與工具
  • Day 3:工具、AI 與 Owner 分層審查
  • Day 4:把退件要求留下,變成共用查法
  • Day 5:先放好基線,記錄人的投入

第二幕|把功能做出來,也驗清楚(Day 6–16):從目的、設計到實作與交付,每一步都有可核對的依據。

  • Day 6:約好怎樣才算完成
  • Day 7:留下專案規則背後的理由
  • Day 8:用反證檢查人的答案
  • Day 9:釐清需求裡尚未決定的事
  • Day 10:查影響範圍,留下設計與計畫
  • Day 11:讓 Claude 修改、測試與修正
  • Day 12:核對 API、狀態與下游通知
  • Day 13:把待決事項交給有權決定的 Owner
  • Day 14:交出可辨識、可執行的版本
  • Day 15:驗負載,也驗工作是否完成
  • Day 16:沿紀錄查故障,留下接手線索

第三幕|讓方法離開作者(Day 17–22):查法、背景、檢查與隱藏依賴都留下,團隊才接得住。

  • Day 17:用 Skill 保存可重用查法
  • Day 18:用 Wiki 留下背景、來源與版本
  • Day 19:把固定核對交給程式
  • Day 20:換環境重跑,找出隱藏依賴
  • Day 21:用評估與回歸檢查 Skill 改版
  • Day 22:把結果接成分工與下一步

第四幕|接上運行資料,安全處理問題(Day 23–28):從看見未完成的工作,到查因、修復、限制處置與核對排程成果。

  • Day 23:查出監控成功與工作完成的落差
  • Day 24:補齊觀測訊號,讓 Claude 有資料可查
  • Day 25:在 Dashboard 看見卡點與待確認判斷
  • Day 26:修好阻塞,再驗有沒有重複通知
  • Day 27:先查完成狀態,再決定能否重送
  • Day 28:排程跑完,還要核對實際成果

第五幕|接續回饋,分開結帳(Day 29–30):讓結果與退回理由進入下一輪,再核對改善與代價。

  • Day 29:接續分析、提案、實作與裁決,面對待決累積
  • Day 30(本篇):分開回答機器產出、工作成果與人工投入

參考資料與數字範圍:


上一篇
Day 29|讓 Claude 自己提出下一步,為什麼我反而更忙?
系列文
買了 Claude Code,然後呢? 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言